home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DDJMAG / DDJ8801.ZIP / NARO.ZIP / NARO.EXP < prev    next >
Text File  |  1980-01-01  |  5KB  |  158 lines

  1.  
  2.  
  3.   /*   This program demonstrates the use of the LOCATE utility. It
  4.        contains all of the components of a typical C program to exercise
  5.        the startup code and locate utility.
  6. */
  7.  
  8. char    *ptr = "class DATA" ;             /* Initialized data */
  9. int array[10][10]  ;                      /* Uninitialized data */
  10.  
  11. main()
  12. {
  13.     int i,  j ;                           /* Automatics */
  14.     static  char    *s = "" ;            /* Static initialized data */
  15.  
  16.     for (i = 0; i < 10; i++)    {
  17.         for (j = 0; j < 10; j++)
  18.             array[i][j] = i * j ;
  19.     }
  20.  
  21.     strcpy(s, ptr)  ;           /* Bring in a library function */}
  22.  
  23. Example 1: The demonstration program
  24.  
  25.  
  26.    C>masm /MX tc, tc, tc ;
  27.    Microsoft (R) Macro Assembler  Version 4.00
  28.    Copyright (C) Microsoft Corp 1981, 1983, 1984, 1985.  All rights reserved.
  29.  
  30.      49272 Bytes symbol space free
  31.         0 Warning Errors
  32.         0 Severe  Errors
  33.  
  34.    C>tcc -c -ml demo
  35.    Turbo C  Version 1.0  Copyright (c) 1987 Borland International
  36.    demo.c:
  37.  
  38.           Available memory 293342
  39.  
  40. Example 2: Compiling the C source code and the MASM start-up module
  41.  
  42.  
  43.  
  44. C>type demo.map
  45.  
  46.  Start   Stop    Length  Name             Class
  47.  
  48.  00000H  00035H  00036H  _TEXT            CODE
  49.  00036H  0007FH  0004AH  DEMO_TEXT        CODE
  50.  00080H  000A8H  00029H  STRCPY_TEXT      CODE
  51.  000B0H  000BFH  00010H  _ETEXT           CODEEND
  52.  000C0H  000D3H  00014H  _DATA            DATA
  53.  000E0H  001A7H  000C8H  _BSS             BSS
  54.  001A8H  001A8H  00000H  _BSSEND          BSSEND
  55.  001B0H  003AFH  00200H  _STACK           STACK
  56.  
  57.  
  58.  Address           Publics by Value
  59.  
  60.  0000:0000         START
  61.  0003:0006         _MAIN
  62.  0008:0000         _STRCPY
  63.  000B:0010         TEND
  64.  000C:0000         _PTR
  65.  000C:0000         IDATA
  66.  000C:0020         ARRAY
  67.  000C:0020         BDATA
  68.  000C:00E8         EDATA
  69.  001B:0200         TOS
  70.  
  71. Program entry point at 0000:0000
  72.  
  73. Example 3: The linker map file
  74.  
  75.  
  76.  
  77. ;
  78. ;       This configuration file is used with Turbo C to build a ROMable
  79. ;       image. It defines physical addresses for three classes, makes a
  80. ;       copy of the initialized data class to keep in ROM and instructs
  81. ;       the locator the order of the different classes.
  82. ;
  83.  
  84. dup     DATA CONST         ; Make a copy of the initialized data class
  85.                            ; and name it CONST
  86.  
  87. class  CODE = 0xfc00       ; Start code at address FC000H
  88. class  STACK = 0x0080      ; The stack at address 00800H
  89. class  DATA = 0x0100       ; DGROUP at address 01000H
  90. order  DATA BSS BSSEND     ; Define the order of DGROUP
  91. order CODE CODEEND CONST   ; And the order of classes in ROM
  92.  
  93. rom CODE CONST             ; ROM only the program code and the copy
  94.                            ; of the initialized data that the startup
  95.                            ; code copies from ROM to DGROUP
  96.  
  97. Example 4: The configuration file
  98.  
  99.  
  100.  
  101. C>type demo.loc
  102. MS-DOS Locate Utility Version 1.0
  103.  
  104. Input File: DEMO.EXE
  105. Output File: DEMO.HEX
  106. Configuration File: DEMO.CFG
  107. Invoked by: C:\BIN\LOCATE.EXE -b demo
  108. Date/Time: Mon Aug 03 14:40:17 1987
  109.  
  110. Segment Information
  111. Name         Class         Address     Length_
  112. TEXT         CODE          FC000H      0036H
  113. DEMO_TEXT    CODE          FC036H      004AH
  114. STRCPY_TEX   CODE          FC080H      0029H
  115. _ETEXT       CODEEND       FC0B0H      0010H
  116. _DATA        DATA          01000H      0014H
  117. _BSS         BSS           01020H      00C8H
  118. _BSSEND      BSSEND        010E8H      0000H
  119. _STACK       STACK         00800H      0200H
  120. _DATA        NEWDATA       FC0C0H      0014H
  121. ??BOOT       (ABSOLUTE)    FFFF0H      0005H
  122.  
  123. Public Symbols
  124. FC00:0000  START                 FC03:0006  _MAIN
  125. FC08:0000  _STRCPY               FC0B:0010  TEND
  126. 0100:00E8  EDATA                 0100:0020  BDATA
  127. 0100:0020  _ARRAY                0100:0000  IDATA
  128. 0100:0000  _PTR                  0080:0200  TOS
  129.  
  130. Entry Point - FC00:0000
  131.  
  132. Example 5: The ouput from the locator
  133.  
  134.  
  135. :02000002FC0000
  136. :10000000FAB880008ED0BC0002B800018EC0B80BD8
  137. :10001000FC408ED8BE00008BFEB920002BCFF3A48D
  138. :10002000061F32C0BF2000B9E8002BCFF3AAFB9A0D
  139. :06003000060003FCEBCA10
  140. :02000002FC03FD
  141. :10000600565733F6EB2433FFEB1A8BC6F7E7508BC4
  142. :10001600C6BA1400F7E28BD88BC7D1E003D858894B
  143. :100026008720004783FF0A7CE14683FE0A7CD7FFD0
  144. :10003600360200FF360000FF360600FF3604009A3F
  145. :0A004600000008FC83C4085F5ECBD5
  146. :02000002FC08F8
  147. :100000005657558BECFC1EC47E0E8BF732C0B9FFE1
  148. :10001000FFF2AEF7D18CC38EDBC47E0AF3A41F8B34
  149. :09002000560C8B460A5D5F5ECBB5
  150. :02000002FC0CF4
  151. :100000000800000113000001436C61737320444138
  152. :040010005441000057
  153. :02000002FFFFFE
  154. :05000000EA000000FC15
  155. :04000003FC000000FD
  156. :00000001FF
  157.  
  158. Example 6: